home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cgazv5n4.arc / WPPREFIX.H < prev    next >
C/C++ Source or Header  |  1991-09-23  |  2KB  |  58 lines

  1. /*---- WPPREFIX.H ------------------------- Listing 1 -----
  2.  *  The minimal prefix required for a WordPerfect file.
  3.  *  All WordPerfect files use this prefix (except WP macro
  4.  *  source code), even files which are not documents, such
  5.  *  as dictionaries, thesauri, printer drivers, etc.
  6.  *
  7.  *  by Andrew Binstock. See copyright terms in Lisitng 2.
  8.  *-------------------------------------------------------*/
  9.  
  10. #ifndef WPPREFIX_H          /* no need to #include twice */
  11. #define WPPREFIX_H 1
  12.  
  13. /* the following directives are to assure that
  14.    the prefix takes up exactly 16 bytes. You must
  15.    independently make sure that all values are stored
  16.    using the Intel byte-order (the default on PC's).     */
  17.  
  18. #pragma pack(1)             /* mandatory for Microsoft C */
  19.  
  20. typedef short        WORD;  /* make sure this is 16 bits */
  21. typedef long         DWORD; /* make sure this is 32 bits */
  22. typedef signed char  SCHAR; /* make sure of signed char  */
  23.  
  24. struct wp_prefix
  25. {
  26.     SCHAR id[4];        /* WP signature, must be: -1,W,P,C */
  27.     DWORD doc_start;    /* offset to start of document. */
  28.     char  prod_type;    /* company product type:
  29.                                 1 = WordPerfect
  30.                                 9 = PlanPerfect
  31.                                 10 = DataPerfect
  32.                                 15 = DrawPerfect, etc. */
  33.     char  file_type;    /* = 0x0A */
  34.     char  maj_version;  /* major version = 0      */
  35.     char  min_version;  /* minor version :
  36.                                 1 = WP 5.1
  37.                                 0 = WP 5.0        */
  38.     WORD  encrypted;    /* encryption key:
  39.                                 0 = not encrypted */
  40.     WORD  filler;       /* reserved -- not used   */
  41. };
  42.  
  43. struct wp_addl_prefix   /* 10 bytes */
  44. {
  45.     WORD  packet_type;  /* Always = 0xFFFB */
  46.     WORD  indices;      /* Always 5 for WP 5.0, 5.1 */
  47.     WORD  index_size;   /* 10 * indices = 50 */
  48.     DWORD next_block;
  49. };
  50.  
  51. struct wp_packet_index   /* 10 bytes */
  52. {
  53.     WORD  type;
  54.     DWORD length;
  55.     DWORD data_offset;
  56. };
  57.  
  58. #endif